package com.example;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
import java.util.*;

public class Input {
    static Scanner scanner = new Scanner(System.in);
    // 新增带范围限制的整数输入方法
    static int getValidIntInput(int min, int max) {
        while (true) {
            try {
                int input = Integer.parseInt(scanner.nextLine());
                if (input >= min && input <= max) {
                    return input;
                }
                System.out.printf("输入无效，请输入 %d 到 %d 之间的整数: ", min, max);
            } catch (NumberFormatException e) {
                System.out.print("输入无效，请输入整数: ");
            }
        }
    }
    static String getValidStringInput() {
        while (true) {
            String input = scanner.nextLine();
            if (!input.trim().isEmpty()) {
                return input;
            }
            System.out.println("输入无效，请不要输入空字符串。");
        }
    }
    static double getValidDoubleInput() {
        while (true) {
            try {
                return Double.parseDouble(scanner.nextLine());
            } catch (NumberFormatException e) {
                System.out.println("输入无效，请输入一个数字。");
            }
        }
    }
    static String getValidPhoneNumberInput() {
        while (true) {
            String input = scanner.nextLine();
            // 使用正则表达式验证手机号码格式
            if (input.matches("^1[3-9]\\d{9}$")) {
                return input;
            }
            System.out.println("输入的手机号码格式无效。");
        }
    }
    static LocalDateTime getValidDateTimeInput() {
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
        while (true) {
            try {
                String input = scanner.nextLine();
                return LocalDateTime.parse(input, formatter);
            } catch (DateTimeParseException e) {
                System.out.println("输入的日期格式无效，请使用 yyyy-MM-dd HH:mm 格式重新输入。");
            }
        }
    }
    static String getValidRoleInput() {
        List<String> validRoles = Arrays.asList("管理员", "经理", "前台");
        while (true) {
            String role = scanner.nextLine().trim();
            if (validRoles.contains(role)) {
                return role;
            }
            System.out.print("无效角色");
        }
    }
}